package com.arpa.oms.service;


import com.arpa.core.web.Result;
import com.arpa.oms.domain.dto.OmsDefaultWarehouseDTO;
import com.arpa.oms.domain.entity.OmsDefaultWarehouse;
import com.arpa.oms.domain.vo.OmsCustomerVO;
import com.arpa.oms.domain.vo.OmsDefaultWarehouseVO;
import com.arpa.wms.domain.entity.Carrier;
import com.arpa.wms.domain.entity.Warehouse;
import com.arpa.wms.domain.vo.WarehouseVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 默认发货仓库 服务类
 * </p>
 *
 * @author wangdong
 * @since 2021-07-27
 */
public interface IOmsDefaultWarehouseService extends IService<OmsDefaultWarehouse> {


    /**
     * 查询合计
     * @param warehouseDTO
     * @return
     */
    OmsDefaultWarehouseVO queryListSum(OmsDefaultWarehouseDTO warehouseDTO);


    /**
     * 查询
     * @param warehouseDTO
     * @return
     */
    List<OmsDefaultWarehouseVO> queryList(OmsDefaultWarehouseDTO warehouseDTO);

    /**
     * 保存
     * @param entity
     * @return
     */
    boolean save(OmsDefaultWarehouseDTO entity);


    Result closeLocationManagement(OmsDefaultWarehouse entity);

    /**
     * 根据code更新
     *
     * @param entity
     * @return
     */
    int updateByCode(OmsDefaultWarehouse entity);


    /**
     * 根据code更新启用状态
     *
     * @param codes
     * @return
     */
    int activeStatus(List<String> codes);


    /**
     * 根据code更新停用状态
     *
     * @param codes
     * @return
     */
    Map<String, Object> unactiveStatus(List<String> codes);

    /**
     * @param code
     * @return
     */
    OmsDefaultWarehouseVO getOneByCode(String code);

}
